package cn.niit.letuseatdemo.mapper;

import cn.niit.letuseatdemo.entity.domain.Store;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 商家Mapper接口
 *
 * @author 苏福明
 * @date 2022-11-02
 */
@Repository
public interface StoreMapper
{
    /*
      * @Description: 根据账号、密码查询符合条件的用户对象，用于商家登录验证
      * @Author: zhang_bowen
      * @CreateTime: 2022/11/30  22:15 Unclosed character class near index 10
[\ [|\]|\s]
      **/
    Store selectStoreByStorePhoneStorePassword(@Param("storePhone") String storePhone, @Param("storePassword") String storePassword);
    /**
     * 查询商家
     *
     * @param storeId 商家主键
     * @return 商家
     */
    public Store selectStoreByStoreId(Long storeId);



    /**
     * 查询商家列表
     *
     * @param store 商家
     * @return 商家集合
     */
    public List<Store> selectStoreList(Store store);

    /**
     * 查询商家列表
     *
     * @return 商家集合
     */
    public List<Store> selectStoreListByCategoryId(Long categoryId);

    /**
     * 新增商家
     *
     * @param store 商家
     * @return 结果
     */
    public int insertStore(Store store);

    /**
     * 修改商家
     *
     * @param store 商家
     * @return 结果
     */
    public int updateStore(Store store);

    /**
     * 删除商家
     *
     * @param storeId 商家主键
     * @return 结果
     */
    public int deleteStoreByStoreId(Long storeId);

    /**
     * 批量删除商家
     *
     * @param storeIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteStoreByStoreIds(String[] storeIds);

    /*
      * @Description: (管理员)根据商家ID查询商家
      * @Author: zhang_bowen
      * @CreateTime: 2022/12/1  11:50
 * @return: null
      **/
    public Store selectAdminStoreByStoreId(Long storeId);

    /*
      * @Description:  (管理员)查询商家列表
      * @Author: zhang_bowen
      * @CreateTime: 2022/12/1  11:51
 * @return: null
      **/
    public List<Store> selectAdminStoreList(Store store);

    /*
      * @Description: （管理员）修改商家入驻审核状态
      * @Author: zhang_bowen
      * @CreateTime: 2022/12/1  11:53
 * @return: null
      **/
    public int updateAdminStore(Store store);

    /*
      * @Description: 商家入驻使用，添加商家入数据库中
      * @Author: zhang_bowen
      * @CreateTime: 2022/12/1  22:23
 * @return: null
      **/
    public int insertAdminStore(Store store);

    /**
     * 根据类别查询同类店铺列表
     *@Autor 陆品贤
     * @param categoryId 类别id
     * @return 同类店铺类别集合
     */
    public List<Store> selectShopByCategoryId(Long categoryId);

    /*
      * @Description: （商家入驻）验证用户名
      * @Author: zhang_bowen
      * @CreateTime: 2022/12/2  10:22
 * @return: null
      **/
    public Store findStorePhone(@Param("storePhone") String storePhone);

    /*
      * @Description: （商家入驻）验证密码
      * @Author: zhang_bowen
      * @CreateTime: 2022/12/2  10:23
 * @return: null
      **/
    public String findStorePassword(String storePhone);

    /*
      * @Description: （管理员）审核商家入驻通过
      * @Author: zhang_bowen
      * @CreateTime: 2022/12/8  17:06
 * @return: int
      **/
    int auditSuccess(Integer id);

    /*
      * @Description: （管理员）审核商家入驻不通过
      * @Author: zhang_bowen
      * @CreateTime: 2022/12/8  17:11
 * @return: null
      **/
    int auditFail(Integer id);
}
